class Solution
{
public:
    void merge(vector<int> &nums1, int m, vector<int> &nums2, int n)
    {
        int nums1Pos = m - 1;
        int nums2Pos = n - 1;
        for (int i = m + n - 1; i >= 0; --i)
        {
            if (nums2Pos == -1)
            {
                return;
            }
            else if (nums1Pos == -1)
            {
                while (nums2Pos >= 0)
                {
                    nums1[i] = nums2[nums2Pos];
                    --i;
                    --nums2Pos;
                }
                return;
            }
            if (nums1[nums1Pos] > nums2[nums2Pos])
            {
                nums1[i] = nums1[nums1Pos];
                --nums1Pos;
            }
            else
            {
                nums1[i] = nums2[nums2Pos];
                --nums2Pos;
            }
        }
    }
};